Providing haptic feedback through touch-sensitive input devices

ABSTRACT

A method for providing haptic feedback. Haptic feedback may be provided to a user through a touch-sensitive input device configured to provide input to a touch-sensitive computing device. The method includes determining a haptic perception factor based at least in part on one or more of a set of input device inputs received from sensors of the touch-sensitive input device and a set of computing device inputs received from sensors of the touch-sensitive computing device. A haptic response profile is determined based at least in part on the haptic perception factor. Haptic devices of the touch-sensitive input device are then actuated based at least in part on the determined haptic response profile.

BACKGROUND

Smartphones, tablets, and other computing devices with touch-sensitivedisplays allow for input using fingers, an electronic stylus, etc. Atouch-sensitive input device may include haptic actuators configured toprovide feedback to the user as a means of enhancing the userexperience. As one example, a stylus may provide haptic output in theform of vibration applied to a body of the stylus via an internal motor.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

A method for providing haptic feedback is disclosed. Haptic feedback maybe provided to a user through a touch-sensitive input device configuredto provide input to a touch-sensitive computing device. The methodincludes determining a haptic perception factor based at least on parton one or more of a set of input device inputs received from sensors ofthe touch-sensitive input device and a set of computing device inputsreceived from sensors of the touch-sensitive computing device. A hapticresponse profile is determined based at least in part on the hapticperception factor. Haptic devices of the touch-sensitive input deviceare then actuated based at least in part on the determined hapticresponse profile.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an example of touch-sensitive input in the form of a userinteracting with a touch-sensitive display via a touch-sensitive inputdevice.

FIG. 2A depicts a user providing input with a stylus in an exampleautomatic feedback mode.

FIG. 2B depicts a user providing input with a stylus in another exampleautomatic feedback mode.

FIG. 3A depicts a user providing input with a stylus in an exampleinteractive feedback mode.

FIG. 3B depicts a user providing input with a stylus in another exampleinteractive feedback mode.

FIG. 4A depicts a user holding a stylus with an example hand grip.

FIG. 4B depicts a user holding a stylus with another example hand grip.

FIG. 5A depicts a touch-sensitive computing device positioned on a solidsurface.

FIG. 5B depicts a touch-sensitive computing device being held in auser's hand.

FIG. 6A depicts a heat map for a touch-sensitive computing devicefeaturing a contact point for a stylus.

FIG. 6B depicts a heat map for a touch-sensitive computing devicefeaturing contact points for a stylus and a palm of a user's hand.

FIG. 6C depicts a heat map for a touch-sensitive computing devicefeaturing contact points for a stylus, a palm of a user's hand, and aportion of the user's second hand.

FIG. 7A depicts a foldable computing device in a flat configurationpositioned on a flat surface.

FIG. 7B depicts a foldable computing device in a back-to-back posepositioned on a flat surface.

FIG. 7C depicts a foldable computing device in a back-to-back pose heldin a user's hand.

FIG. 7D depicts a foldable computing device in a tented pose positionedon a flat surface.

FIG. 8 depicts an example method for providing haptic feedback through atouch-sensitive input device being used to provide input to atouch-sensitive computing device.

FIG. 9 depicts an example method for providing haptic feedback through atouch-sensitive input device being used to provide input to atouch-sensitive computing device.

FIG. 10 shows a schematic depiction of an example computing environmentin which the systems of FIG. 1 may be enacted.

DETAILED DESCRIPTION

A variety of input devices have been developed that provide hapticoutput. As one example, a haptic stylus may provide haptic output in theform of vibration applied to a body of the stylus via an internal motor.Styli and other input devices may provide haptic output for a variety ofpurposes, including but not limited to simulating a tactile sensation(e.g., resulting from the traversal of a virtual surface such as gravel,or from touching a virtual object), simulating ink-on-surface feelsensations, confirming a user input (e.g., in response to user selectionof a graphical user interface element), and/or providing another type offeedback (e.g., an indication of the state of an input device such as abattery level, the state of an application).

To achieve haptic output, a haptic feedback mechanism such as a motormay be arranged within the body of the stylus, such as near the tip ofthe stylus. This localized positioning of the motor, however, may besuch that users perceive noticeably different haptic outputs as theirgrip and finger positions on the stylus change, which tends to occur intypical stylus use scenarios. Further, the haptic output may be dampenedby pressure between the stylus and the touch-sensitive computing deviceit is being used with. This dampening may be exacerbated if the user isalso pressing on the touch-sensitive computing device with their handwhile using the stylus, if the computing device is laying on a surface,etc. Conversely, if haptic feedback is provided to a user holding thestylus loosely while hovering over the touch-sensitive computing device,the force, if too high, may be distracting or cause the user to drop orlose grip on the stylus. As such, there are numerous challenges withproviding a consistent and favorable user experience with a hapticstylus and corresponding computing device.

Accordingly, systems and methods are presented herein that may be usedto generate a consistent and favorable experience for a user operating atouch-sensitive input device with a touch-sensitive computing device.Sensors, both within and on the touch-sensitive input device and withinand on the touch-sensitive computing device, provide inputs to acontroller which uses the sensory information to determine a hapticperception factor. Based at least in part on this haptic perceptionfactor, the controller may determine how much and/or what type of hapticactuation is necessary to generate a consistent haptic sensationprofile, and adjust the intensity, frequency, or other characteristicsof the haptic actuation accordingly. In this way, the user mayexperience consistent haptic feedback, whether holding the stylus in theair or pressing down upon the touch-sensitive computing device with thestylus when the computing device is resting between the palm of theuser's hand and a solid table. In some cases, a user may specify apreferred amount of haptic sensation (e.g., via a user profile) whichthey would like to feel when haptic feedback is provided.

FIG. 1 depicts an example touch-sensitive input device in the form of astylus 100. While described primarily using the stylus form as anexample any touch-sensitive input device configured to sense the touchof a user, provide input to a touch-sensitive computing device, anddeliver haptic feedback may be utilized. Stylus 100 includes anelongated body 101 in the form factor of a pen, though the body mayassume any suitable form. As shown in the depicted example, stylus 100is operable to provide user input to a computing device 104. Computingdevice 104 is shown in the form of a mobile computing device (e.g.,tablet) having a touch-sensitive display 106, but may assume anysuitable form. Any suitable type of user input may be provided tocomputing device 104 using stylus 100. As examples, stylus 100 may beused to draw graphical content on touch-sensitive display 106 ofcomputing device 104, modify graphical content (e.g., resize,reposition, rotate), erase graphical content, select graphical userinterface (GUI) elements, and/or provide gestural input.

To enable the provision of user input from stylus 100 to computingdevice 104, the stylus may include a communication subsystem with whichdata may be transmitted from the stylus to the computing device. Forexample, the communication subsystem may include a radio transmitter forwirelessly transmitting data to and from computing device 104 along aradio link. As another example, the communication subsystemalternatively or additionally may include a capacitive transmitter forwirelessly transmitting data to and from computing device 104 along acapacitive link. The capacitive link may be established between thecapacitive transmitter and a touch-sensitive display 106 having acapacitive touch sensor, for example.

Any suitable data may be transmitted to computing device 104 via thecommunication subsystem, including but not limited to indications ofactuation at stylus 100 (e.g., depression of a stylus tip 108 or astylus end 110), data regarding the position of the stylus relative tothe computing device (e.g., one or more coordinates), a power state orbattery level of the stylus, and data from a motion sensor on-board thestylus (e.g., accelerometer data with which stylus gestures may beidentified). Moreover, in some examples, data regarding the locations ofcontact points between a user hand and stylus 100, which may be sensedby the stylus as described below, may be transmitted to computing device104 via the communication subsystem. It will be understood that anysuitable mechanism may be used to transmit information from stylus 100to computing device 104. Additional examples include optical, resistive,and wired mechanisms. Example hardware including a processor andcommunication subsystem that may be incorporated by stylus 100 toimplement the disclosed approaches is described below with reference toFIG. 10 .

Stylus 100 is configured to provide haptic feedback to users. To thisend, stylus 100 includes a haptic feedback mechanism 102 configured toapply haptic output to body 101. As shown in FIG. 1 , haptic feedbackmechanism 102 is arranged within body 101 toward stylus tip 108, but maybe provided at any suitable location at stylus 100. Haptic feedbackmechanism 102 may employ any suitable component(s) to provide hapticfeedback as described herein. As one example, haptic feedback mechanism102 may include a motor that applies haptic output to body 101 in theform of vibration induced in the body. Haptic feedback mechanism 102 mayadditionally or alternatively include electrostatic, ultrasonic,auditory, or other haptic mechanisms. In some examples, multiple hapticfeedback mechanisms are provided at different locations within a stylus.

Stylus 100 further includes a sensor subsystem schematically depicted at112. Sensor subsystem 112 may be configured to output sensor dataindicating locations and local pressures along body 101 of the contactpoints formed between a user hand 114 and body 101 as detected bymultiple grip sensing elements (not shown) such as a capacitive sleeve.Sensor subsystem 112 may be further configured to indicate a pressurebetween user hand 114 and stylus body 101 at one or more of the contactpoints. Additional sensing elements may include one or more tip pressuresensors positioned at a tip and/or an opposite end of stylus 100. One ormore electrostatic sensors may be included in the tip and/or oppositeend of stylus 100. Sensor subsystem 112 may further include one or moreaccelerometers, gyrometers, proximity sensors, etc. configured toprovide information regarding the pose, velocity, and orientation ofstylus 100. Data received from sensor subsystem 112 and/or fromcomputing device 104 may be stored at memory 120.

Computing device 104 may also include a sensor subsystem (not shown).For example, computing device 104 may include capacitive touch sensors,peripheral grip sensors, accelerometers, gyrometers, proximity sensors,hall sensors, etc. In some examples, computing device 104 may includetwo or more touch-sensitive displays coupled by one or more hinges, andmay thus include one or more hinge angle sensors. Touch-sensitivedisplay 106 may be configured to output capacitance values for eachtouch-sensing pixel or capacitive grid point in the form of heat maps inorder to determine which, if any areas of the capacitive touch sensorare being touched.

Computing device 104 may be configured to communicate with stylus 100via electrostatic circuitry, radio circuitry, other wirelesscommunication circuitry, etc. In this way, sensor information may beshared between computing device 104 and stylus 100. In this way, commoninputs, such as speed and velocity of stylus tip 108 acrosstouch-sensitive display 106 may be coordinated. Further, ambiguousinformation may be resolved. As an example, stylus 100 may not be ableto discern whether stylus tip 108 is being pressed againsttouch-sensitive display 106 or pressed by a thumb of the user. Othercomponents of example computing systems are described herein and withregard to FIG. 10 .

A stylus may be used for both specific object selection, akin to auser's finger, and for providing less structured input, such as writing,drawing, circling objects, etc. As such, different types of hapticfeedback may be for provided for automatic feedback modes, such asinking and for interactive feedback modes, such as display objectselection.

Haptic feedback may be used to generate a pleasing and reproduciblewriting experience, such as a perception of a pen or pencil writing onreal paper. Some stylus tip compositions glide on glass surfaces withminimal friction. This decreases performance, accuracy, and control fora user attempting to write on the surface of a touch-sensitive display.Previous solutions include exchangeable stylus tips with differentfriction coefficients, and surface treatments or film overlays fortouch-sensitive displays. However, these solutions may not be compatiblefor all applications of the touch-sensitive display, especially if theuser also uses the computing device without a stylus.

FIGS. 2A and 2B show examples of a user providing input to computingdevice 104 with stylus 100 in interactive feedback modes. In aninteractive feedback mode, subtle haptic feedback may be provided viathe stylus to mimic the feeling of writing on a frictive surface. InFIG. 2A, at 200, the user is pressing stylus tip 108 ontotouch-sensitive display 106, which is presenting inking canvas 205. InFIG. 2B, at 220, the user is pressing stylus end 110 ontotouch-sensitive display 106 within inking canvas 205. At 200, the usermay be inking content onto inking canvas 205, while at 220, the user maybe erasing content from inking canvas 205.

In such an interactive feedback mode, the haptic feedback provided viastylus 100 may mimic the feel of pen-on-paper (FIG. 2A) oreraser-on-paper (FIG. 2B), or any other desired combination of writingimplement and textured surface. For example, haptic feedback may mimicchalk on a chalkboard, crayons on cardboard, or other combinations. Thehaptic feedback may also generate a small amount of movement of stylustip 108 or stylus end 110.

In some examples, the haptic feedback may be initiated automaticallywhen stylus tip 108 or stylus end 110 contacts touch-sensitive display106 within inking canvas 205, and may be applied continuously, thenended when stylus tip 108 or stylus end 110 is removed fromtouch-sensitive display 106 or leaves inking canvas 205. In otherexamples, the haptic feedback may be initiated automatically responsiveto movement of stylus tip 108 or stylus end 110 within inking canvas205.

Accordingly, computing device 104 and stylus 100 may share informationregarding the type of application being executed on computing device104, so that stylus 100 is aware that an inking canvas is beingpresented and that an automatic feedback mode is likely to be invoked.Sensor data, such as capacitive sensor data from touch-sensitive display106 and tip pressure sensor data from stylus 100 may be exchanged todetermine the position, velocity, and pressure of the stylus tip 108 ontouch-sensitive display 106.

Haptic feedback may be adjusted based at least in part on determinedpressure between stylus tip 108 or stylus end 110 and touch-sensitivedisplay 106, angle of incidence between stylus tip 108 or stylus end 110and touch-sensitive display 106, as well as other factors, as describedfurther herein. Haptic feedback may be further adjusted with velocity,mimicking a pen or eraser traversing a rough surface. In some examples,haptic feedback may be increased or decreased in pulses while operatingin an interactive feedback mode so as to provide interactive feedback(e.g., battery level decreasing below a threshold, new messagereceived).

Scenarios where an inking canvas is not being utilized may use aninteractive feedback mode to govern haptic feedback. Specific events maygenerate haptic triggers, which may in turn result in haptic feedbackbeing applied through the stylus. In general, manual triggers may begenerated when the user performs a specific task related to materialpresented on the touch-sensitive display and receives action-drivenfeedback in return.

FIGS. 3A and 3B depict a user providing input to touch-sensitive display106 with stylus 100 in example interactive feedback modes. In FIG. 3A,at 300, a user is using stylus 100 to draw a lasso 305 over a portion ofdisplayed content presented on touch-sensitive display 106. When lasso305 is closed, haptic feedback may be provided via stylus 100 whilestylus tip 108 is in contact with touch-sensitive display 106.

In FIG. 3B, at 320, the user is selecting an object 325, e.g., a button,from a number of display objects 330 presented on touch-sensitivedisplay 106. In this scenario, as shown at 335, the haptic feedback maynot be provided until stylus tip 108 has been removed fromtouch-sensitive display 106, completing the depression-and-release ofobject 325. Similar workflow may be used for lassoing objects or otheractions where completion of the task includes removing stylus 100 fromtouch-sensitive display 106. Haptic feedback may be provided in otherhovering scenarios, such as when a user selects an object by hoveringover it for a threshold duration. Hovering may be determined based atleast in part on capacitive sensors in touch-sensitive display 106 andtip pressure sensors in stylus 100.

When stylus 100 is hovering over touch-sensitive display 106, it is onlycontacted by hand 114, and thus the only dampening of the feedback isprovided by hand 114, whereas when stylus 100 is contactingtouch-sensitive display 106, the display itself also dampens the hapticfeedback. As such, the user may be more sensitive to haptic feedbackwhen stylus 100 is hovering. Accordingly, to maintain a consistent levelof haptic feedback, haptic actuation levels may be reduced if it isdetermined that stylus 100 is hovering.

A user's grip on a stylus may impact the amount of haptic sensationperceived at the fingers of the user. FIGS. 4A and 4B depict a userholding a stylus with example hand grips. At 400, FIG. 4A shows a user'shand 114 holding stylus 100 near the middle of body 101. At 405, FIG. 4Bdepicts user's hand 114 holding stylus 100 near the stylus tip 108. Inother scenarios, a user may hold the stylus near the stylus end, mayhold the stylus with a fist, etc. Some hand grips may only includecontact points for two or three fingertips, while others may alsoinclude contact points for inter-finger webbing. The position, gripstyle, contact points, and grip pressure may all contribute to theamount of haptic sensation dampening. The location of grip contactpoints relative to the positioning of haptic actuators within the stylusbody may also contribute to the user's perception of haptic sensations.

As such, grip-determining inputs may include grip sensors positionedaxially and circumferentially around stylus 100 as well as capacitivetouch sensors on a touch-sensitive display. The contact points of theuser's grip may further inform the angle of contact of stylus tip 108,particularly when analyzed along with the tip pressure and tip angle.

The posture of the computing device, and in particular, whether the faceof the computing device opposite the touch-sensitive display iscontacting another surface may also contribute to dampening hapticsensations generated at the stylus. As examples, FIGS. 5A and 5B depictdifferent postures for a computing device. At 500, FIG. 5A showscomputing device 104 resting on a solid surface (e.g., table 505) whileuser's hand 114 engages touch-sensitive display 106 with stylus 100. At510, FIG. 5B shows user's opposite hand 520 holding computing device 104while user's hand 114 engages touch-sensitive display 106 with stylus100. In other examples, computing device 104 may be propped upright viaa kickstand or other mechanism. While FIG. 5A shows computing device 104resting on a solid surface, other scenarios may have computing device104 resting on a more pliable surface. Each of these scenarios mayimpact the dampening of haptic sensations, as the haptic sensation isdampened by the computing device and by the surface supporting thecomputing device.

Postures of the computing device may be determined by motion sensors,accelerometers, gyroscopes, proximity sensors, etc. For example, if thecomputing device is not moving, it is unlikely that the device is beingheld by the user. It may not be possible to discern the type of staticsurface the device is placed on. However, this may be informed if theuser manually adjusts the level of desired haptic feedback. Further,machine learning may be used to determine if the user consistentlyperforms certain tasks in certain environments (e.g., spreadsheetapplications on an office table vs. drawing applications on a pillow inbed).

Dampening of haptic sensation may also be impacted by how and whetherthe user's hand is contacting the touch-sensitive display while usingthe stylus. In general, a greater contact area between the user's handand the computing device increases the amount of dampening. The positionof the user's hand relative to the point of stylus contact, and to theedges of the touch-sensitive display may also impact the user'sperception of haptic sensations, particularly in an automatic feedbackmode such as inking.

FIGS. 6A-6C show example heat maps on a touch-sensitive displaycorresponding to different hand postures and thus to different amountsof dampening. As described with regard to FIG. 1 , heatmaps may begenerated based at least in part on capacitive data for each pixel orgrid point on the touch-sensitive display. FIG. 6A shows an example heatmap 600, whereby touch-sensitive display 106 is only contacted by astylus (asterisk). FIG. 6B shows an example heat map 605 whereby a useris contacting touch-sensitive display with both a stylus and the palm ofthe hand holding the stylus. FIG. 6C shows an example heat map 610 for alarge-scale computing device 612 having a touch-sensitive display 614.The size of the computing device itself may impact dampening, withlarger devices comprising more material and a larger surface area withwhich to dissipate haptic sensations. In the example of FIG. 6C, theuser is contacting touch-sensitive display 614 with both hands and thestylus, further dampening haptic sensations from the stylus.

Foldable computing devices may be configured to adopt numerous poseswhich may impact dampening of haptic sensations. As described withregard to FIG. 1 , the addition of a hinge angle sensor and presence ofmultiple touch-sensitive displays may generate additional sensor datathat may be used to discern the posture of the device and to informhaptic actuation at the stylus.

FIGS. 7A-7D depict a foldable computing device 700 having a firsttouch-sensitive display 702 coupled to a second touch-sensitive display704 via a hinge 706. At 710, FIG. 7A depicts foldable computing device700 in a flat configuration with a hinge angle of 180°, computing device700 positioned on a flat, solid surface (e.g., table 715), while user'shand 114 provides input from stylus 100 to first touch-sensitive display702.

At 720, FIG. 8B depicts foldable computing device 700 in a back-to-backpose with a hinge angle of 360°, computing device 700 positioned withsecond touch-sensitive display 704 facing a flat, solid surface (e.g.,table 715), while user's hand 114 provides input from stylus 100 tofirst touch-sensitive display 702. In this configuration, with thetouch-sensitive displays collapsed, more haptic sensation may beabsorbed by computing device 700 than for the scenario shown at 710,where first touch-sensitive display 702 is directly contacting table715.

At 730, FIG. 7C depicts foldable computing device 700 in a back-to-backpose with a hinge angle of 360°, computing device 700 positioned withsecond touch-sensitive display 704 facing a second hand 735 of a user,while user's hand 114 provides input from stylus 100 to firsttouch-sensitive display 702.

At 740, FIG. 7D depicts foldable computing device 700 in a tented posewith a hinge angle of 270°, computing device 700 positioned with edgesopposite hinge 706 contacting a flat, solid surface 745, while user'shand 114 provides input from stylus 100 to first touch-sensitive display702. In some scenarios, the user may hold computing device 700 in a tentpose with one or more fingers of their opposite hand positioned betweenscreens, providing a different dampening profile than for the exampleshown at 740. As such, the hinge angle and heat maps obtained from bothfirst touch-sensitive display 702 and second touch-sensitive display 704may be provided as computing device inputs for determining an amount ofhaptic dampening.

FIG. 8 depicts an example method 800 for providing haptic feedbackthrough a touch-sensitive input device being used to provide input to atouch-sensitive device. Method 800 may be executed by a touch-sensitiveinput device, such as stylus 100 when used in concert with atouch-sensitive computing device, such as computing device 104. In someexamples, all or part of method 800 may be executed by a touch-sensitivecomputing device.

At 810, method 800 includes determining a haptic perception factor basedat least in part on one or more of a set of input device inputs receivedfrom sensors of the touch-sensitive input device and a set of computingdevice inputs received from sensors of the touch-sensitive computingdevice. As described, the haptic perception factor may be based at leastin part on inputs from touch-sensitive input device sensors such as gripsensors, tip pressure sensors, accelerometers, gyrometers, proximitysensors, etc. and/or inputs from touch-sensitive computing devicesensors such as capacitive touch sensors, peripheral grip sensors,accelerometers, gyrometers, proximity sensors, hall sensors, hinge anglesensors, etc. Computing device inputs may further include informationabout the nature of the device, such as size, thickness, materials, etc.that may influence dampening of haptic feedback, as well as indicationsof active applications, content currently presented on a device display,and other information that may cause a change in user perception ofhaptic feedback. The haptic perception factor may be determined via alookup table, calculated as a stored function of inputs, etc.

Inputs may be weighted based at least in part on their influence onhaptic perception, and may not be weighted at all if not applicable. Forexample, if the touch-sensitive input device is hovering, the set ofcomputing device inputs from computing device sensors may be weighted as0. If the user places the touch-sensitive input device on a table, theset of input device inputs may be weighted as 0, or may be weightedheavily, so as to prevent unnecessary haptic actuation when thetouch-sensitive input device is not being held by the user. Further, byweighting the inputs, the haptic perception factor may be moreaccurately determined. For example, contact area between the user's handand the touch-sensitive computing device may be weighted differentlydepending on whether the user's hand is over the center of thetouch-display vs at an edge of the touch-display. If the user isgripping the touch-sensitive input device with a certain grip location,pressure, and angle that makes the input device haptics more susceptibleto dampened haptic sensations, the weights of the correspondingcomputing device inputs may be increased. As such situational weightingof inputs may be used to generate a haptic perception factor that moreclosely approximates the user's current use scenario.

Inputs may be interactive and/or additive. For example, if the inputsindicate the user is gripping the touch-sensitive input device tightlyand placing their palm on the touch-sensitive display, the associatedinputs may be used to generate a greater haptic perception factor thaneither group of inputs alone. In some examples, the inputs may berecorded as a change or difference from a previous input, and may beupdated when a change increases or decreases below a threshold,indicating a significant difference.

At 820, method 800 includes determining a haptic response profile basedat least in part on the haptic perception factor. In other words, basedat least in part on the haptic perception factor, a haptic responseprofile may be determined to approximate the perception of a consistentamount of haptic feedback, accounting at least for any dampening ofhaptic sensation or otherwise reduction in haptic perception as afunction of the set of input device inputs and the set of computingdevice inputs.

In some examples, the haptic response profile may be further based atleast in part on a baseline haptic profile stored in memory, which maybe retrieved responsive to recognizing a haptic trigger. A haptictrigger may be any action, generated by the touch-sensitive input deviceand/or the touch-sensitive computing device that is associated with andcues a haptic response at the touch-sensitive input device. As describedwith regard to FIGS. 2A and 2B, this may include a haptic trigger forautomatic feedback, such as inking or erasing. As described with regardto FIGS. 3A and 3B, this may include a haptic trigger for interactivefeedback, such as selecting a display object presented on atouch-sensitive display. Additionally or alternatively, haptic triggersmay include device feedback and/or software feedback that is not drivenby use of the touch-sensitive input device with the touch-sensitivecomputing device, such as a low battery warning or a calendar reminder.

The baseline haptic profile may be stored at the touch-sensitive inputdevice, stored at the touch-sensitive computing device, or at anothernetworked device. If stored at the touch-sensitive computing device, thebaseline haptic profile may be pushed to the touch-sensitive inputdevice. If stored at a networked storage device, the baseline hapticprofile may be downloaded by either the touch-sensitive input device orthe touch-sensitive computing device. In some examples, the baselinehaptic profile may be loaded in memory at the touch-sensitive inputdevice upon powering up and/or active use so it may be rapidly retrievedupon recognizing a haptic trigger.

The baseline haptic profile may be specific to the user, and may bestored as a user preference for the touch-sensitive input device. Thebaseline haptic profile may indicate a preferred amount of hapticsensation transferred to the user's fingertips for any haptic feedback.The baseline haptic profile may be predetermined, such as a defaultsetting, may be directly selected by the user, and/or may be iterativelydetermined over the course of stylus usage by the user.

Based at least in part on the inputs, the haptic perception factor mayrepresent the state of the user, and haptic intensity settings adjustedaccordingly. This may enable consistent haptic feedback across a rangeof scenarios. Applying the haptic perception factor to the baselinehaptic profile may be based at least in part on predetermined outcomes,such as those based at least in part on empirical data or simulations.Interpolation and inference may be used to generate a plurality ofsettings to achieve consistency in haptic feedback. A genericrelationship may be provided that may be further adapted for each userover time. For example, some users may not press with as much force withtheir palm on the touch-sensitive computing device and thus not dampenthe signal as much as others.

The haptic response profile may be further adjust based at least in parton application specific events, and/or user habits that correlate toeither reduced perception or heightened perception (e.g., a stoicapplication vs a very busy application). In some examples, there may bea range or levels of haptic response within an application—(e.g., selecta photo vs. crop a photo vs. are you sure you want to delete thisphoto?). The haptic response profile may include both amplitude andfrequency components, such as when applied through a haptic motor.

At 830, method 800 includes actuating haptic devices of thetouch-sensitive input device based at least in part on the determinedhaptic response profile. As described with regard to FIG. 1 , the hapticdevices may include haptic motors, electrostatic devices, ultrasonicdevices, auditory devices, etc. In some examples, there may beconcurrent feedback from the touch-sensitive computing device, be ithaptic, visual, audible, or other feedback. In some examples, the hapticfeedback may replace feedback from the touch-sensitive computing device.For some applications, such as inking and other automatic feedbackmodes, the haptic feedback may be inverted, with a reduction or loss ofpersistent haptic feedback as a signaling tool.

Optionally, at 840, method 800 may include determining a change in thehaptic perception factor based at least in part on one or more of theset of input device inputs and the set of computing device inputs. Forexample, a change in any sensor output value contributing to the hapticperception factor is likely to affect a change in haptic perception. Forexample, a change in the haptic perception factor may be based at leastin part on a change in contact area between a hand of the user and thetouch-sensitive computing device. An increase in contact area maycorrespond to an increased haptic perception factor, while a decrease incontact area may correspond to a decreased haptic perception factor.However, the change in contact area may have a lower impact on thehaptic perception factor as compared to other changed input values, suchas contact pressure. In some examples, the change in haptic perceptionfactor may be based at least in part on a change in posture of thetouch-sensitive computing device, a change in the user's grip at thetouch-sensitive input device body, a change in contact pressure betweenthe touch-sensitive input device and the touch-sensitive computingdevice, etc.

Optionally, at 850, method 800 may include adjusting the haptic responseprofile based at least in part on the changed haptic perception factorand a baseline haptic profile, and, continuing at 860, method 800 mayoptionally include actuating the haptic devices of the touch-sensitiveinput device based at least in part on the adjusted haptic responseprofile. In this way, the user's perceived haptic feedback may remainconsistent even as the haptic perception factor fluctuates.

FIG. 9 depicts an example method 900 for providing haptic feedbackthrough a touch-sensitive input device being used to provide input to atouch-sensitive display. Method 900 may be executed by a touch-sensitiveinput device, such as stylus 100 when used in concert with atouch-sensitive computing device, such as computing device 104. In someexamples, all or part of method 800 may be executed by a touch-sensitivecomputing device.

At 910, method 900 includes determining a current mode of operationbased at least in part on one or more of a first set of input deviceinputs received from touch-sensitive input device sensors and a firstset of computing device inputs received from touch-sensitive computingdevice sensors. For example, the current mode of operation may be anautomatic feedback mode, such as inking, or an interactive feedbackmode, such as a mode wherein display objects are selected based at leaston a position of the touch-sensitive input device relative to atouch-sensitive display of the touch-sensitive computing device. Thefirst set of input device inputs may include inputs regarding theorientation of the touch-sensitive input device, such as whether the tipof the touch-sensitive input device or the end of the touch-sensitiveinput device is oriented towards the touch-sensitive display. The firstset of input device inputs may further include pressure values output bypressure sensors at the tip of the touch-sensitive input device, such aswhether the touch-sensitive input device is contacting thetouch-sensitive display or hovering over the touch-sensitive display.The first set of computing device inputs may include a status of anapplication executing on the touch-sensitive computing device, forexample an automatic feedback mode may be determined based at least inpart on an inking canvas being presented on the touch-sensitive display.

At 920, method 900 includes retrieving a baseline haptic profile for thecurrent mode of operation. The baseline haptic profile may be retrievedas described with regard to FIG. 8 , excepting that in some examplesseparate baseline haptic profiles may be maintained for each mode ofoperation. Such a retrieval may be performed in response to recognizinga haptic trigger. In examples where the current mode is an automaticfeedback mode, the haptic trigger may be based at least in part on a tipof the touch-sensitive input device contacting the touch-sensitivecomputing device when the touch-sensitive computing device is presentingan inking canvas. In examples where the current mode is an interactivefeedback mode, the haptic trigger may be based at least in part on aposition of a tip of the touch-sensitive input device relative tocontent displayed on the touch-sensitive computing device, as describedwith regard to FIGS. 3A and 3B.

At 930, method 900 includes determining a haptic perception factor basedat least in part on one or more of a second set of input device inputsreceived from the touch-sensitive input device sensors and a second setof computing device inputs received from the touch-sensitive computingdevice sensors. At 940, method 900 includes determining a hapticresponse profile based at least in part on the retrieved baseline hapticprofile and the haptic perception factor. The haptic perception factorand haptic response profile may be determined as described with regardto FIG. 8 , though the current mode of operation may influence bothvalues.

At 950, method 900 includes actuating haptic devices of thetouch-sensitive input device based at least in part on the determinedhaptic response profile. In some examples, the haptic devices may beactuated based at least in part on a first haptic response profileresponsive to the haptic trigger being recognized when the tip of thetouch-sensitive input device is contacting the display of thetouch-sensitive computing device. Further, in some examples, the hapticdevices may be actuated based at least in part on a second hapticresponse profile, different than the first haptic response profile,responsive to the haptic trigger being recognized when the tip of thetouch-sensitive input device is hovering over the display of thetouch-sensitive computing device.

Optionally, at 960, method 900 includes determining a baseline hapticprofile for a user based at least in part on one or more of a third setof input device inputs received from the touch-sensitive input devicesensors and a third set of computing device inputs received from thetouch-sensitive computing device sensors as the user inputs a preferredamount of haptic sensation transferred to the user's fingertips. Inother words, when a user is selecting a haptic profile, the input deviceinputs and computing device inputs may indicate the current state of thedevices, and inform why a user is currently deciding to make anadjustment to their baseline haptic profile. For example, if the user'spalm is contacting the touch-sensitive display, and they indicate toincrease haptic intensity, it may be deduced that their palm isdampening haptic sensations greater than what is being accounted for.The coefficient for palm contact may thus be increased with regard tothe haptic perception factor, and this calculation may be stored in theuser's baseline haptic profile. Continuing at 970, method 900 mayoptionally include, responsive to recognizing a subsequent haptictrigger, actuating haptic devices of the touch-sensitive input devicebased at least in part on the updated baseline haptic profile.

In some embodiments, the methods and processes described herein may betied to a computing system of one or more computing devices. Inparticular, such methods and processes may be implemented as acomputer-application program or service, an application-programminginterface (API), a library, and/or other computer-program product.

FIG. 10 schematically shows a non-limiting embodiment of a computingsystem 1000 that can enact one or more of the methods and processesdescribed above. Computing system 1000 is shown in simplified form.Computing system 1000 may embody the computing device 104 describedabove and illustrated in FIG. 1 . Computing system 1000 may take theform of one or more personal computers, server computers, tabletcomputers, home-entertainment computers, network computing devices,gaming devices, mobile computing devices, mobile communication devices(e.g., smart phone), and/or other computing devices, and wearablecomputing devices such as smart wristwatches and head mounted augmentedreality devices.

Computing system 1000 includes a logic processor 1002 volatile memory1004, and a non-volatile storage device 1006. Computing system 1000 mayoptionally include a display subsystem 1008, input subsystem 1010,communication subsystem 1012, and/or other components not shown in FIG.10 .

Logic processor 1002 includes one or more physical devices configured toexecute instructions. For example, the logic processor may be configuredto execute instructions that are part of one or more applications,programs, routines, libraries, objects, components, data structures, orother logical constructs. Such instructions may be implemented toperform a task, implement a data type, transform the state of one ormore components, achieve a technical effect, or otherwise arrive at adesired result.

The logic processor may include one or more physical processors(hardware) configured to execute software instructions. Additionally oralternatively, the logic processor may include one or more hardwarelogic circuits or firmware devices configured to executehardware-implemented logic or firmware instructions. Processors of thelogic processor 1002 may be single-core or multi-core, and theinstructions executed thereon may be configured for sequential,parallel, and/or distributed processing. Individual components of thelogic processor optionally may be distributed among two or more separatedevices, which may be remotely located and/or configured for coordinatedprocessing. Aspects of the logic processor may be virtualized andexecuted by remotely accessible, networked computing devices configuredin a cloud-computing configuration. In such a case, these virtualizedaspects are run on different physical logic processors of variousdifferent machines, it will be understood.

Non-volatile storage device 1006 includes one or more physical devicesconfigured to hold instructions executable by the logic processors toimplement the methods and processes described herein. When such methodsand processes are implemented, the state of non-volatile storage device1006 may be transformed—e.g., to hold different data.

Non-volatile storage device 1006 may include physical devices that areremovable and/or built-in. Non-volatile storage device 1006 may includeoptical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.),semiconductor memory (e.g., ROM, EPROM, EEPROM, FLASH memory, etc.),and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tapedrive, MRAM, etc.), or other mass storage device technology.Non-volatile storage device 1006 may include nonvolatile, dynamic,static, read/write, read-only, sequential-access, location-addressable,file-addressable, and/or content-addressable devices. It will beappreciated that non-volatile storage device 1006 is configured to holdinstructions even when power is cut to the non-volatile storage device1006.

Volatile memory 1004 may include physical devices that include randomaccess memory. Volatile memory 1004 is typically utilized by logicprocessor 1002 to temporarily store information during processing ofsoftware instructions. It will be appreciated that volatile memory 1004typically does not continue to store instructions when power is cut tothe volatile memory 1004.

Aspects of logic processor 1002, volatile memory 1004, and non-volatilestorage device 1006 may be integrated together into one or morehardware-logic components. Such hardware-logic components may includefield-programmable gate arrays (FPGAs), program- andapplication-specific integrated circuits (PASIC/ASICs), program- andapplication-specific standard products (PSSP/ASSPs), system-on-a-chip(SOC), and complex programmable logic devices (CPLDs), for example.

The terms “module,” “program,” and “engine” may be used to describe anaspect of computing system 1000 typically implemented in software by aprocessor to perform a particular function using portions of volatilememory, which function involves transformative processing that speciallyconfigures the processor to perform the function. Thus, a module,program, or engine may be instantiated via logic processor 1002executing instructions held by non-volatile storage device 1006, usingportions of volatile memory 1004. It will be understood that differentmodules, programs, and/or engines may be instantiated from the sameapplication, service, code block, object, library, routine, API,function, etc. Likewise, the same module, program, and/or engine may beinstantiated by different applications, services, code blocks, objects,routines, APIs, functions, etc. The terms “module,” “program,” and“engine” may encompass individual or groups of executable files, datafiles, libraries, drivers, scripts, database records, etc.

When included, display subsystem 1008 may be used to present a visualrepresentation of data held by non-volatile storage device 1006. Thevisual representation may take the form of a graphical user interface(GUI). As the herein described methods and processes change the dataheld by the non-volatile storage device, and thus transform the state ofthe non-volatile storage device, the state of display subsystem 1008 maylikewise be transformed to visually represent changes in the underlyingdata. Display subsystem 1008 may include one or more display devicesutilizing virtually any type of technology. Such display devices may becombined with logic processor 1002, volatile memory 1004, and/ornon-volatile storage device 1006 in a shared enclosure, or such displaydevices may be peripheral display devices.

When included, input subsystem 1010 may comprise or interface with oneor more user-input devices such as a keyboard, mouse, touch screen, orgame controller. In some embodiments, the input subsystem may compriseor interface with selected natural user input (NUI) componentry. Suchcomponentry may be integrated or peripheral, and the transduction and/orprocessing of input actions may be handled on- or off-board. Example NUIcomponentry may include a microphone for speech and/or voicerecognition; an infrared, color, stereoscopic, and/or depth camera formachine vision and/or gesture recognition; a head tracker, eye tracker,accelerometer, and/or gyroscope for motion detection and/or intentrecognition; as well as electric-field sensing componentry for assessingbrain activity; and/or any other suitable sensor.

When included, communication subsystem 1012 may be configured tocommunicatively couple various computing devices described herein witheach other, and with other devices. Communication subsystem 1012 mayinclude wired and/or wireless communication devices compatible with oneor more different communication protocols. As non-limiting examples, thecommunication subsystem may be configured for communication via awireless telephone network, or a wired or wireless local- or wide-areanetwork, such as a HDMI over Wi-Fi connection. In some embodiments, thecommunication subsystem may allow computing system 1000 to send and/orreceive messages to and/or from other devices via a network such as theInternet.

In one example, a method for providing haptic feedback through atouch-sensitive input device configured to provide input to atouch-sensitive computing device comprises determining a hapticperception factor based at least in part on one or more of a set ofinput device inputs received from sensors of the touch-sensitive inputdevice and a set of computing device inputs received from sensors of thetouch-sensitive computing device; determining a haptic response profilebased at least in part on the haptic perception factor; and actuatinghaptic devices of the touch-sensitive input device based at least inpart on the determined haptic response profile. In such an example, orany other example, the haptic response profile is further additionallyor alternatively based at least in part on a baseline haptic profilestored in memory. In any of the preceding examples, or any otherexample, the baseline haptic profile is additionally or alternativelyspecific to a user. In any of the preceding examples, or any otherexample, the method additionally or alternatively comprises determininga change in the haptic perception factor based at least in part on oneor more of the set of input device inputs and the set of computingdevice inputs; adjusting the haptic response profile based at least inpart on the changed haptic perception factor and the baseline hapticprofile; and actuating the haptic devices of the touch-sensitive inputdevice based at least in part on the adjusted haptic response profile.In any of the preceding examples, or any other example, the change inthe haptic perception factor is additionally or alternatively based atleast in part on computing device inputs indicating a change in contactarea between a hand of a user and the touch-sensitive computing device.In any of the preceding examples, or any other example, the change inhaptic perception factor is additionally or alternatively based at leaston computing device inputs indicating a change in posture of thetouch-sensitive computing device. In any of the preceding examples, orany other example, the change in haptic perception factor isadditionally or alternatively based at least on input device inputsindicating a change in a user's grip at the touch-sensitive inputdevice. In any of the preceding examples, or any other example, thechange in haptic perception factor is additionally or alternativelybased at least on one or more of computing device inputs and inputdevice inputs indicating a change in contact pressure between thetouch-sensitive input device and the touch-sensitive computing device.

In another example, a method for providing haptic feedback through atouch-sensitive input device configured to provide input to atouch-sensitive computing device comprises determining a current mode ofoperation based at least in part on one or more of a first set of inputdevice inputs received from touch-sensitive input device sensors and afirst set of computing device inputs received from touch-sensitivecomputing device sensors; retrieving a baseline haptic profile for thecurrent mode of operation; determining a haptic perception factor basedat least in part on one or more of a second set of input device inputdevice inputs received from the touch-sensitive input device sensors anda second set of computing device inputs received from thetouch-sensitive computing device sensors; determining a haptic responseprofile based at least in part on the retrieved baseline haptic profileand the haptic perception factor; and actuating haptic devices of thetouch-sensitive input device based at least in part on the determinedhaptic response profile.

In such an example, or any other example, the haptic perception factoris additionally or alternatively determined in response to recognizing ahaptic trigger. In any of the preceding examples, or any other example,the current mode is additionally or alternatively an interactivefeedback mode, and wherein the haptic trigger is based at least in parton a position of a tip of the touch-sensitive input device relative tocontent displayed on the touch-sensitive computing device. In any of thepreceding examples, or any other example, the haptic devices areadditionally or alternatively actuated based at least in part on a firsthaptic response profile responsive to the haptic trigger beingrecognized when the tip of the touch-sensitive input device iscontacting a display of the touch-sensitive computing device. In any ofthe preceding examples, or any other example, the haptic devices areadditionally or alternatively actuated based at least in part on asecond haptic response profile responsive to the haptic trigger beingrecognized when the tip of the touch-sensitive input device is hoveringover the display of the touch-sensitive computing device. In any of thepreceding examples, or any other example, the current mode isadditionally or alternatively an automatic feedback mode, and whereinthe haptic trigger is based at least in part on a tip of thetouch-sensitive input device contacting the touch-sensitive computingdevice when the touch-sensitive computing device is presenting an inkingcanvas. In any of the preceding examples, or any other example, themethod additionally or alternatively comprises determining an updatedbaseline haptic profile for a user based at least in part on a third setof input device input device inputs received from the touch-sensitiveinput device sensors and a third set of computing device inputs receivedfrom the touch-sensitive computing device sensors as the user inputs apreferred amount of haptic sensation transferred to the user'sfingertips; and responsive to recognizing a subsequent haptic trigger,actuating haptic devices of the touch-sensitive input device based atleast in part on the updated baseline haptic profile.

In yet another example, a haptic stylus comprises a body; one or morehaptic devices within the body; a communications subsystem; a sensorsubsystem; and a controller configured to: determine a haptic perceptionfactor based at least in part on one or more of a set of input deviceinputs received from the sensor subsystem and a set of computing deviceinputs received from sensors of a touch-sensitive computing device viathe communications subsystem; determine a haptic response profile basedat least in part on the determined haptic perception factor; and actuatethe haptic devices at the determined haptic response profile. In such anexample, or any other example, the sensor subsystem additionally oralternatively includes one or more pressure sensors coupled to a stylustip. In any of the preceding examples, or any other example, the sensorsubsystem additionally or alternatively includes one or more pressuresensors coupled to a stylus end. In any of the preceding examples, orany other example, the sensor subsystem additionally or alternativelyincludes one or more grip sensors positioned around a circumference ofthe body. In any of the preceding examples, or any other example, thecontroller is additionally or alternatively configured to determine achange in the haptic perception factor based at least in part on one ormore of the set of input device inputs and the set of computing deviceinputs; adjust the haptic response profile based at least in part on thechanged haptic perception factor; and actuate the haptic devices of thestylus based at least in part on the adjusted haptic response profile.

It will be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated and/ordescribed may be performed in the sequence illustrated and/or described,in other sequences, in parallel, or omitted. Likewise, the order of theabove-described processes may be changed.

The subject matter of the present disclosure includes all novel andnon-obvious combinations and sub-combinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

1. A method for providing haptic feedback through a touch-sensitiveinput device configured to provide input to a touch-sensitive computingdevice, comprising: determining a haptic perception factor based atleast in part on a set of input device inputs received from sensors ofthe touch-sensitive input device and a set of computing device inputsreceived from sensors of the touch-sensitive computing device, thecomputing device inputs including at least a contact area between a handof a user and the touch-sensitive computing device; determining a hapticresponse profile based at least in part on the haptic perception factor;actuating haptic devices of the touch-sensitive input device based atleast in part on the determined haptic response profile; determining achange in the haptic perception factor based at least in part on achange in the contact area between the hand of the user and thetouch-sensitive computing device; adjusting the haptic response profilebased at least in part on the changed haptic perception factor; andactuating the haptic devices of the touch-sensitive input device basedat least in part on the adjusted haptic response profile.
 2. The methodof claim 1 wherein the haptic response profile is further based at leastin part on a baseline haptic profile stored in memory.
 3. The method ofclaim 2, wherein the baseline haptic profile is specific to the user. 4.(canceled)
 5. (canceled)
 6. The method of claim 1, wherein the change inhaptic perception factor is based at least on computing device inputsindicating a change in posture of the touch-sensitive computing device.7. The method of claim 1, wherein the change in haptic perception factoris based at least on input device inputs indicating a change in a user'sgrip at the touch-sensitive input device.
 8. The method of claim 1,wherein the change in haptic perception factor is based at least on oneor more of computing device inputs and input device inputs indicating achange in contact pressure between the touch-sensitive input device andthe touch-sensitive computing device.
 9. A method for providing hapticfeedback through a touch-sensitive input device configured to provideinput to a touch-sensitive computing device, comprising: determining acurrent mode of operation based at least in part on a first set of inputdevice inputs received from touch-sensitive input device sensors and afirst set of computing device inputs received from touch-sensitivecomputing device sensors, the current mode of operation selected from aplurality of modes of operation including at least an interactivefeedback mode of operation and an automatic feedback mode of operation,each mode of operation associated with a baseline haptic profilespecific to that mode of operation; retrieving a baseline haptic profilefor the current mode of operation; determining a haptic perceptionfactor based at least in part on one or more of a second set of inputdevice input device inputs received from the touch-sensitive inputdevice sensors and a second set of computing device inputs received fromthe touch-sensitive computing device sensors, the computing deviceinputs including at least a contact area between a hand of a user andthe touch-sensitive computing device; determining a haptic responseprofile based at least in part on the retrieved baseline haptic profileand the haptic perception factor; actuating haptic devices of thetouch-sensitive input device based at least in part on the determinedhaptic response profile; determining a change in the haptic perceptionfactor based at least in part on a change in the contact area betweenthe hand of the user and the touch-sensitive computing device; adjustingthe haptic response profile based at least in part on the changed hapticperception factor; and actuating the haptic devices of thetouch-sensitive input device based at least in part on the adjustedhaptic response profile.
 10. The method of claim 9, wherein the hapticperception factor is determined in response to recognizing a haptictrigger.
 11. The method of claim 10, wherein the current mode is theinteractive feedback mode, and wherein the haptic trigger is based atleast in part on a position of a tip of the touch-sensitive input devicerelative to content displayed on the touch-sensitive computing device.12. The method of claim 11, wherein the haptic devices are actuatedbased at least in part on a first haptic response profile responsive tothe haptic trigger being recognized when the tip of the touch-sensitiveinput device is contacting a display of the touch-sensitive computingdevice.
 13. The method of claim 12, wherein the haptic devices areactuated based at least in part on a second haptic response profileresponsive to the haptic trigger being recognized when the tip of thetouch-sensitive input device is hovering over the display of thetouch-sensitive computing device.
 14. The method of claim 10, whereinthe current mode is the automatic feedback mode, and wherein the haptictrigger is based at least in part on a tip of the touch-sensitive inputdevice contacting the touch-sensitive computing device when thetouch-sensitive computing device is presenting an inking canvas.
 15. Themethod of claim 9, further comprising: determining an updated baselinehaptic profile for a user based at least in part on a third set of inputdevice input device inputs received from the touch-sensitive inputdevice sensors and a third set of computing device inputs received fromthe touch-sensitive computing device sensors as the user inputs apreferred amount of haptic sensation transferred to the user'sfingertips; and responsive to recognizing a subsequent haptic trigger,actuating haptic devices of the touch-sensitive input device based atleast in part on the updated baseline haptic profile.
 16. A hapticstylus, comprising: a body; one or more haptic devices within the body;a communications subsystem; a sensor subsystem; and a controllerconfigured to: determine a haptic perception factor based at least inpart on a set of input device inputs received from the sensor subsystemand a set of computing device inputs received from sensors of atouch-sensitive computing device via the communications subsystem, thecomputing device inputs including at least a contact area between a handof a user and the touch-sensitive computing device; determine a hapticresponse profile based at least in part on the determined hapticperception factor; actuate the haptic devices at the determined hapticresponse profile determine a change in the haptic perception factorbased at least in part on a change in the contact area between the handof the user and the touch-sensitive computing device; adjust the hapticresponse profile based at least in part on the changed haptic perceptionfactor; and actuate the haptic devices based at least in part on theadjusted haptic response profile.
 17. The haptic stylus of claim 16,wherein the sensor subsystem includes one or more pressure sensorscoupled to a stylus tip.
 18. The haptic stylus of claim 16, wherein thesensor subsystem includes one or more pressure sensors coupled to astylus end.
 19. The haptic stylus of claim 16, wherein the sensorsubsystem includes one or more grip sensors positioned around acircumference of the body.
 20. (canceled)